import { reactive } from 'vue';

const state = reactive<{
  /**
   * 选中的组织id
   */
  selectedOrganTree: AppSysOrgan.Dto[];
  /**
   * 选中的组织
   */
  activeOrganId: string;
  /**
   * 展示组织树
   */
  organTree?: AppSysOrgan.Dto[];
  /**
   * 原始组织树
   */
  sourceOrganTree: AppSysOrgan.Dto[];
  /**
   * 当前页
   */
  activePage: number;
  /**
   * 加载状态
   */
  loading: boolean;
  /**
   * 加载完成状态
   */
  finished: boolean;
  /**
   * 用户名称
   */
  name: string;
  /**
   * 用户列表
   */
  list: AppSysUser.Dto[];
}>({
  selectedOrganTree: [],
  activeOrganId: '',
  organTree: [],
  sourceOrganTree: [],
  activePage: 1,
  loading: false,
  finished: false,
  name: '',
  list: [],
});

const searchState = reactive<{
  /**
   * 支持姓名手机号模糊查询
   */
  keyword: string;
  /**
   * 当前页
   */
  activePage: number;
  /**
   * 加载状态
   */
  loading: boolean;
  /**
   * 加载完成状态
   */
  finished: boolean;
  /**
   * 用户名称
   */
  name: string;
  /**
   * 列表
   */
  list: { user?: AppSysUser.Dto; organs?: AppSysOrgan.Dto[] }[];
  /**
   * 搜索结果可见性
   */
  visible: boolean;
}>({
  keyword: '',
  activePage: 1,
  loading: false,
  finished: false,
  name: '',
  list: [],
  visible: false,
});

export { state, searchState };
